Serverless API তৈরি করা এমন একটি প্রক্রিয়া যা আপনাকে সার্ভার পরিচালনা বা কনফিগার করার ঝামেলা ছাড়াই অ্যাপ্লিকেশন ডেভেলপ করতে সক্ষম করে। AWS Lambda এবং Amazon API Gateway এর মাধ্যমে একটি serverless API তৈরি করা যায়। এই কনসেপ্টটি মূলত ক্লাউড কম্পিউটিং পরিবেশে চলে, যেখানে আপনি শুধু কোড লেখেন এবং তা রান করার জন্য কোনও সার্ভার বা ইনফ্রাস্ট্রাকচার ম্যানেজ করার দরকার হয় না।
এখানে AWS ব্যবহারের মাধ্যমে একটি Serverless API তৈরির ধাপ ব্যাখ্যা করা হয়েছে।
AWS Lambda হলো একটি serverless কম্পিউটিং সেবা যা আপনাকে কোড রান করানোর জন্য কোনো সার্ভার পরিচালনা করতে দেয় না। Lambda ফাংশনগুলি কোডের নির্দিষ্ট টুকরো যা API-এর বেসিক কাজ করতে ব্যবহৃত হয়।
Lambda ফাংশন তৈরি করার ধাপ:
my-api-function
.Node.js
, Python
, অথবা আপনার পছন্দের ভাষা।উদাহরণ: Node.js Lambda ফাংশন:
exports.handler = async (event) => {
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
API Gateway ব্যবহার করে আপনি HTTP API তৈরি করতে পারেন যা Lambda ফাংশনকে ট্রিগার করবে। API Gateway আপনার API কে ইন্টারনেটের মাধ্যমে অ্যাক্সেসযোগ্য করে তোলে।
API Gateway তৈরি করার ধাপ:
my-serverless-api
), এবং Create API ক্লিক করুন।API Gateway-কে Lambda ফাংশনের সাথে সংযুক্ত করতে হলে, API Gateway একটি Lambda Integration সেটআপ করতে হবে।
Lambda Integration করার ধাপ:
GET /hello
বা POST /data
)।API Gateway ডিপ্লয় করার পর, একটি Invoke URL বা Endpoint URL তৈরি হবে, যা আপনি API কল করার জন্য ব্যবহার করতে পারবেন। উদাহরণস্বরূপ:
https://xyz123.execute-api.us-west-2.amazonaws.com/hello
এই URL এখন অ্যাক্সেসযোগ্য, এবং আপনি এটি ব্যবহার করে Lambda ফাংশনে GET বা POST রিকোয়েস্ট পাঠাতে পারেন।
এখন আপনি API-এর মাধ্যমে Lambda ফাংশনকে ট্রিগার করতে পারেন। আপনি API Gateway এর Test টুল ব্যবহার করতে পারেন বা আপনার API ইন্ডপয়েন্টে HTTP রিকোয়েস্ট পাঠাতে পারেন।
cURL কমান্ড ব্যবহার:
curl https://xyz123.execute-api.us-west-2.amazonaws.com/hello
এটি Lambda ফাংশনকে ট্রিগার করবে এবং Hello from Lambda!
মেসেজ ফিরিয়ে দেবে।
আপনি যদি ডেটাবেস ব্যবহার করতে চান (যেমন DynamoDB), তবে আপনি Lambda ফাংশনে ডেটাবেস কল করতে পারেন। এখানে একটি সাধারণ DynamoDB ইনটিগ্রেশন দেখানো হলো:
Node.js Lambda ফাংশনে DynamoDB সংযোগ:
const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event) => {
const params = {
TableName: 'my-table',
Key: {
'id': event.id
}
};
try {
const result = await dynamoDb.get(params).promise();
return {
statusCode: 200,
body: JSON.stringify(result.Item),
};
} catch (error) {
return {
statusCode: 500,
body: JSON.stringify({ error: 'Could not fetch item' }),
};
}
};
আপনি API এর জন্য authentication এবং authorization যুক্ত করতে পারেন, যেমন AWS Cognito ব্যবহার করে OAuth 2.0 বা API Keys এর মাধ্যমে। এটি API ব্যবহারের জন্য নিরাপত্তা নিশ্চিত করে।
Serverless API তৈরি করা AWS Lambda এবং API Gateway এর মাধ্যমে একটি দ্রুত, স্কেলেবল, এবং অব্যাহত API ডেভেলপমেন্ট প্রক্রিয়া নিশ্চিত করে। আপনি শুধু কোড লেখেন এবং তা AWS-এর শক্তিশালী এবং স্কেলেবল প্ল্যাটফর্মে রান করান, সার্ভার পরিচালনা বা ইনফ্রাস্ট্রাকচার সম্পর্কে চিন্তা না করেই। DocumentDB বা DynamoDB এর মতো ডেটাবেস সংযোগের মাধ্যমে আরও কার্যকরী API তৈরি করা সম্ভব।
common.read_more